n = int(input())
a = list(map(int, input().split()))
freq = [0] * 1024
for num in a:
    freq[num] += 1

# 预计算所有可能的回文异或值，避免在核心循环中重复进行字符串操作
'''两个n位二进制数异或的结果不会超过n位
题目中Ai的范围是0-1023（10位二进制数）
因此任意两个数的异或结果Ai ^ Aj也必定在0-1023范围内'''
palindromes = []
for x in range(1024):
    s = str(x)
    if s == s[::-1]:
        palindromes.append(x)

ans = 0
for x in palindromes:  # 遍历所有回文数
    if x == 0:  # 处理相同元素的情况
        '''在n个元素中：
        选择相同位置的组合：n种（i=j的情况）
        选择不同位置的组合：n*(n-1)/2种（i<j的情况）
        总和 = n + n*(n-1)/2 = n*(n+1)/2'''
        ans += sum(c * (c + 1) // 2 for c in freq)
    else:
        # 处理不同元素的情况
        cnt = 0
        for a in range(1024):
            if freq[a] == 0:
                continue
            b = a ^ x
            if a < b:  # 确保每对(a,b)只被计算一次
                cnt += freq[a] * freq[b]
        ans += cnt

print(ans)
